<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="padding:10px;">
<p>说明：
    <span>巧用组合调用提高复用，各司其职</span>
</p>
<br/>
<p>正例：</p>
<div style="margin:10px;padding:10px;border:1px solid #000000;white-space: pre-line;">
<br/>    // 薪酬模块
<br/>    public abstract class BaseWarningBiz {
<br/>
<br/>        /**
<br/>        * 薪资预警
<br/>        *
<br/>        * @return
<br/>        */
<br/>        public Result warning(WarningVO vo) {
<br/>            WarningCoefficientInfoDTO warningCoefficientInfoDTO = new WarningCoefficientInfoDTO();
<br/>            // 设置绩效系数
<br/>            warningCoefficientInfoDTO.setPerformanceCoefficientInfo(getPerformanceCoefficient(vo));
<br/>
<br/>            // 设置学习成长系数
<br/>            warningCoefficientInfoDTO.setStudyScoreCoefficientInfo(getStudyScoreCoefficient(vo));
<br/>
<br/>        }
<br/>
<br/>        /**
<br/>        * 获取绩效系数（调用绩效模块的实现）
<br/>        *
<br/>        * @param vo
<br/>        * @return
<br/>        */
<br/>        protected abstract CoefficientInfoDTO getPerformanceCoefficient(WarningVO vo);
<br/>
<br/>        /**
<br/>        * 获取学习成绩系数（调用学习成长的实现）
<br/>        *
<br/>        * @param vo
<br/>        * @return
<br/>        */
<br/>        protected abstract CoefficientInfoDTO getStudyScoreCoefficient(WarningVO vo);
<br/>
<br/>    }
</div>
<br/>
<p>反例：</p>
<div style="margin:10px;padding:10px;border:1px solid #000000;white-space: pre-line;">
<br/>    // 薪酬模块
<br/>
<br/>    /**
<br/>    * 薪资预警
<br/>    *
<br/>    * @return
<br/>    */
<br/>    public Result warning(WarningVO vo) {
<br/>        WarningCoefficientInfoDTO warningCoefficientInfoDTO = new WarningCoefficientInfoDTO();
<br/>        // 设置绩效系数
<br/>        warningCoefficientInfoDTO.setPerformanceCoefficientInfo(getPerformanceCoefficient(vo));
<br/>        // 设置薪资系数
<br/>        warningCoefficientInfoDTO.setSalaryCoefficientInfo(getSalaryCoefficient(vo));
<br/>        // 设置学习成长系数
<br/>        warningCoefficientInfoDTO.setStudyScoreCoefficientInfo(getStudyScoreCoefficient(vo));
<br/>    }
<br/>
<br/>    /**
<br/>    * 获取绩效系数（在薪酬模块实现了原本要在绩效模块的实现的方法，非调用）
<br/>    *
<br/>    * @param vo
<br/>    * @return
<br/>    */
<br/>    protected abstract CoefficientInfoDTO getPerformanceCoefficient(WarningVO vo);


</div>
</body>
</html>